package com.lianniu.mgr.baseService.staff.service;

import com.lianniu.mgr.base.BaseResult;
import com.lianniu.mgr.baseService.post.model.Post2OrgVo;
import com.lianniu.mgr.baseService.staff.model.ParamVo;
import com.lianniu.mgr.baseService.staff.model.StaffVo;
import com.lianniu.mgr.pagination.PaginationInfo;

public interface IStaffService {
  /**
   * @Description:添加员工信息
   * @param staffVo
   * @return BaseResult

   * @Date:2016年3月31日下午2:19:31
   * @Version 1.0.0
   */
  public BaseResult addStaff(StaffVo staffVo);
  /**
   * @Description:编辑员工信息
   * @param staffVo
   * @return BaseResult

   * @Date:2016年3月31日下午2:19:33
   * @Version 1.0.0
   */
  public BaseResult editStaff(StaffVo staffVo);
  
  /**
   * 
   * @Title: getStaff 
   * @Description: 获取员信息

   * @param staffVo
   * @return
   * @date: 2016年4月1日 上午10:00:10 
   * @return: BaseResult
   */
  public BaseResult getStaff(StaffVo staffVo);
  
  /**
   * @Description：分页查询员工列表
   * @Param:StaffVo，PaginationInfo
   * @Return:BaseResult

   * @Date:2016-4-1 15:10:41
   */
  public BaseResult getStaffList(StaffVo staffVo,PaginationInfo paginationInfo);
  
  /**
   * @Description：删除员工
   * @Param:modifyUser 修改人 id  删除员工id
   * @Return:删除行数

   * @Date:2016-4-1 15:44:08
   */
  public BaseResult delStaff(String modifyUser, String... id);
  
  /**
   * @Description:获得组织岗位信息
   * @return BaseResult

   * @Date:2016年4月6日下午12:48:22
   * @Version 1.0.0
   */
  public BaseResult getOrgPost();
  
  /**
   * @Description:保存组织岗位信息
   * @param staffId
   * @param postIdArr
   * @return BaseResult

   * @Date:2016年4月6日下午12:48:24
   * @Version 1.0.0
   */
  public BaseResult addPost(ParamVo paramVo);
  
  /**
   * @Description:根据staffId查询被选中的组织
   * @param staffId
   * @return BaseResult

   * @Date:2016年4月6日下午7:38:50
   * @Version 1.0.0
   */
  public BaseResult getCheckedPostByStaffId(String staffId);
  
  /**
   * @Description:检证员工编号是否存在
   * @param request
   * @return BaseResult

   * @Date:2016年4月7日下午12:56:34
   * @Version 1.0.0
   */
  public boolean isExistStaffNo(String staffNo);
  
  /**
   * @Description:检证员工用户名是否存在
   * @param request
   * @return BaseResult

   * @Date:2016年4月7日下午12:56:34
   * @Version 1.0.0
   */
  public boolean isExistLoginName(String loginName);
  
  /**
   * @Description:检证员工手机号是否存在
   * @param request
   * @return BaseResult

   * @Date:2016年4月7日下午12:56:34
   * @Version 1.0.0
   */
  public boolean isExistMobile(String mobile);
  
  /**
   * @Description:检证员工姓名是否存在
   * @param request
   * @return BaseResult

   * @Date:2016年4月7日下午12:56:34
   * @Version 1.0.0
   */
  public boolean isExistStaffName(String staffName);
  
  /**
   * @Description:检证员工邮箱是否存在
   * @param request
   * @return BaseResult

   * @Date:2016年4月7日下午12:56:34
   * @Version 1.0.0
   */
  public boolean isExistEmail(String email);
  
  /**
   * @Description:检证员工编号是否存在(编辑)
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016-4-7 21:16:24
   * @Version 1.0.0
   */
  public boolean isExistStaffNoById(String staffNo,String staffId);
  
  /**
   * @Description:检证员工用户名是否存在(编辑)
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016-4-7 21:16:24
   * @Version 1.0.0
   */
  public boolean isExistLoginNameById(String loginName,String staffId);
  
  /**
   * @Description:检证员工手机号是否存在(编辑)
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016-4-7 21:16:24
   * @Version 1.0.0
   */
  public boolean isExistMobileById(String mobile,String staffId);
  
  /**
   * @Description:检证员工姓名是否存在(编辑)
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016-4-7 21:16:24
   * @Version 1.0.0
   */
  public boolean isExistStaffNameById(String staffName,String staffId);
  
  /**
   * @Description:检证员工邮箱是否存在(编辑)
   * @param request
   * @return true:不存在 false:存在

   * @Date:2016-4-7 21:16:24
   * @Version 1.0.0
   */
  public boolean isExistEmailById(String email,String staffId);

  /**
   * @Description:页面删除岗位，员工是否还存在岗位(1有，0没有)
   * @param staffId
   * @return BaseResult

   * @Date:2016年11月23日上午10:15:30
   * @Version 1.0.0
   */
  public BaseResult isPostExistByStaffId(String staffId,String[] dels);

  /**
   * @Description:员工分配岗位
   * @param post2OrgVo
   * @param paginationInfo
   * @return BaseResult
   * @Date:2016年10月21日下午12:52:53
   * @Version 1.0.0
   */
  public BaseResult assignPost(Post2OrgVo post2OrgVo, PaginationInfo paginationInfo);

  /**
   * @Description:重置密码，默认设置为1q2w3e
   * @param staffId
   * @Date:2016年12月12日
   */
  public BaseResult resetPwdByStaffId(String staffId,String username);

  /**
   * @Description:员工详情页查看数据权限
   * @param staffId
   * @return BaseResult
   * @Date:2016年10月14日下午2:12:46
   * @Version 1.0.0
   */
  public BaseResult checkPrecintByStaffId(String staffId);

  /**
   * @Description:根据职位获取员工信息
   * @param postion
   * @return BaseResult
   * @Date:2016年10月14日下午2:12:46
   * @Version 1.0.0
   */
  public BaseResult getStaffByPostion(String postion);


  public BaseResult selectStaffByPostName(String postName);
}
